/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import comun.ppNinyo;
import comun.Constantes;
import comun.ppResponsable;
import db.CDActividad;
import db.CDNinyo;
import db.CDResponsable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;


/**
 *
 * @author Scumm
 */
public class CNMain {

    private Connection con;

    private Connection conn() throws SQLException
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String db = "jdbc:odbc:playList";
            con = DriverManager.getConnection( db, "", "");

        } catch (ClassNotFoundException ex) {
            Logger.getLogger(CNMain.class.getName()).log(Level.SEVERE, null, ex);
        }

        return con;
    }

    public DefaultComboBoxModel inicializarFechas() throws Exception
    {
        DefaultComboBoxModel modeloComboActividad = new DefaultComboBoxModel();
        ResultSet rs = null;
        CDActividad cd_actividad = new CDActividad();

          try{

            con = conn();

            //actividades

            rs = cd_actividad.Selection(con);

            /*** Recorrer fila a fila el resultado ****/
            while ( rs.next() )
            {
               String res = rs.getString("FechaFormat");
               modeloComboActividad.addElement(res);
            }

        }catch(Exception e)
        {
            throw e;
        }
        finally
        {
             if(rs != null)
                 rs.close();
              if(con != null)
                 con.close();
         }

        return modeloComboActividad;
    }


    public ArrayList inicializarNinyos(String fecha_actividad,String Caso) throws Exception
    {
        ResultSet rs = null;
        ppNinyo pp_ninyo = null;
        CDNinyo cd_ninyo = new CDNinyo();
        ArrayList lstNinyos = new ArrayList();

          try{

            con = conn();

            /***** Ejecutar sentencias ********/
            Statement sentencia = con.createStatement();


            if(Caso.equalsIgnoreCase(Constantes.KIN))
            {

                rs = cd_ninyo.NinyosIN(fecha_actividad, con);

                /*** Recorrer fila a fila el resultado ****/
                while ( rs.next() )
                {
                   pp_ninyo = new ppNinyo();
                   pp_ninyo.setId(rs.getString("idninyo"));
                   pp_ninyo.setNombre(rs.getString("nombre"));
                   pp_ninyo.setApellido1(rs.getString("apellido1"));
                   pp_ninyo.setApellido2(rs.getString("apellido2"));

                   lstNinyos.add(pp_ninyo);
                }
            }
            else
            {
                 //niños out

                 rs = cd_ninyo.NinyosOUT(fecha_actividad, con);
               
                /*** Recorrer fila a fila el resultado ****/
                while ( rs.next() )
                {
                   pp_ninyo = new ppNinyo();
                   pp_ninyo.setId(rs.getString("idninyo"));
                   pp_ninyo.setNombre(rs.getString("nombre"));
                   pp_ninyo.setApellido1(rs.getString("apellido1"));
                   pp_ninyo.setApellido2(rs.getString("apellido2"));

                   lstNinyos.add(pp_ninyo);

                }
            }
        }catch(Exception e)
        {
            throw e;
        }
        finally
        {
             if(rs != null)
                 rs.close();
              if(con != null)
                 con.close();
         }

        return lstNinyos;
    }

     public ppNinyo SeleccionarNinyo(int ninyo) throws Exception
    {
         // Conectamos con BD para recoger los datos de los niños
        ResultSet rs = null;
        ppNinyo detalleNinyo = new ppNinyo();

        try{

           con = conn();
           CDNinyo bdNinyo = new CDNinyo();

           //actividades

          rs = bdNinyo.DetalleNinyo(ninyo, con);


          /*** Recorrer fila a fila el resultado ****/
            while ( rs.next() )
            {
               //rellenamos
               detalleNinyo.setNombre(rs.getString("nombre"));
               detalleNinyo.setApellido1(rs.getString("apellido1"));
               detalleNinyo.setApellido2(rs.getString("apellido2"));
               detalleNinyo.setFecha(rs.getString("fechaNac"));
               detalleNinyo.setEdad(rs.getString("edad"));
               detalleNinyo.setEdad(detalleNinyo.getEdad().substring(0,detalleNinyo.getEdad().indexOf(".")));
               detalleNinyo.setNotas(rs.getString("notas"));
            }

        }catch(Exception e)
        {
            throw e;
        }
        finally
        {
             if(rs != null)
                 rs.close();
              if(con != null)
                 con.close();
         }

         return detalleNinyo;
    }

    public ArrayList SeleccionarResponsables(int ninyo) throws Exception
    {
        ResultSet rs = null;
        ppResponsable pp_responsable = null;
        CDResponsable cd_responsable = new CDResponsable();
        ArrayList lstResponsables = new ArrayList();

          try{

            con = conn();

            rs = cd_responsable.SeleccionarResponsables(ninyo, con);

            /*** Recorrer fila a fila el resultado ****/
            while ( rs.next() )
            {
               pp_responsable = new ppResponsable();
               pp_responsable.setId(rs.getString("idResponsable"));
               pp_responsable.setNombre(rs.getString("nombre"));
               pp_responsable.setApellido1(rs.getString("apellido1"));
               pp_responsable.setApellido2(rs.getString("apellido2"));
               pp_responsable.setTelefono1(rs.getString("Telefono1"));
               pp_responsable.setTelefono2(rs.getString("Telefono2"));
               pp_responsable.setNotas(rs.getString("Notas"));

               lstResponsables.add(pp_responsable);

            }
            
         }catch(Exception ex){
             throw ex;
         }finally{
             if(rs != null)
                 rs.close();
              if(con != null)
                 con.close();
         }

        return lstResponsables;
    }
}
